GIT 提交记录

1. 提交记录

1.1. 普通日志

git log
git log -p
git log -p -2 
git log --stat -2

1.2. 指定格式进行提交记录的输出

git log --pretty=oneline
git log --pretty --oneline -2
git log --pretty=short -2
git log --pretty=full -2
git log --pretty=format:"%h - %an, %ar : %s"

Table 1. git log --pretty=format 常用的选项

选项 说明
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 --date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明
git log --pretty=format:"%h %s" --graph

Table 2. git log 的常用选项

选项 说明
-p 按补丁格式显示每个更新之间的差异。
--stat 显示每次更新的文件修改统计信息。
--shortstat 只显示 --stat 中最后的行数修改添加移除统计。
--name-only 仅在提交信息后显示已修改的文件清单。
--namestatus 显示新增、修改、删除的文件清单。
--abbrevcommit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。
--relativedate 使用较短的相对时间显示(比如,“2 weeks ago”)。
--graph 显示 ASCII 图形表示的分支合并历史。
--pretty 使用其他格式显示历史提交信息。可用的选项包括 oneline,short, full,fuller 和 format(后跟指定格式)。

Table 3. 限制 git log 输出的选项

1.3. 日志输出的长度

git log --since=2.weeks
git log -Sfunction_name 
选项 说明
-(n) 仅显示最近的 n 条提交
--since , --after 仅显示指定时间之后的提交。
--until , --before 仅显示指定时间之前的提交。
--author 仅显示指定作者相关的提交。
--committer 仅显示指定提交者相关的提交。
--grep 仅显示含指定关键字的提交
-S 仅显示添加或移除了某个关键字的提交
git log --pretty="%h - %s" --author=gitster --since="2008-10-01" \
--before="2008-11-01" --no-merges -- t/
  1. 查看提交记录
[git@OEL7 demo]$ git log --pretty=oneline
[git@OEL7 demo]$  git log -l --pretty=raw
[git@OEL7 demo]$  git log --pretty=raw
[git@OEL7 demo]$ git log -l HEAD  --pretty=raw
[git@OEL7 demo]$ git log -l master --pretty=raw

1.4. 输出所有信息

$ git log --pretty=fuller -2
commit 042b4c60210db9844cb48fb748b8127b0bc28b07
Author:     aming <jikcheng@163.com>
AuthorDate: Sat Apr 29 20:08:44 2017 +0800
Commit:     aming <jikcheng@163.com>
CommitDate: Sat Apr 29 20:08:44 2017 +0800

    rename dir:wq

commit 018ed367a6a3fb4f0132cd0ebd939f3e8be0edc7
Author:     aming <jikcheng@163.com>
AuthorDate: Sat Apr 29 20:05:13 2017 +0800
Commit:     aming <jikcheng@163.com>
CommitDate: Sat Apr 29 20:05:13 2017 +0800

    empty dir commmit

1. 提交

1.1. 打开编译器提交

git commit

1.2. 指定提交信息

git commit -m "<中间的提交注释信息>"